#ifndef MAINVIEW_HPP
#define MAINVIEW_HPP

#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include "assembly/view/EntranceView.hpp"  // 引入 View 类
#include "store/Initialization.hpp"  // 引入初始化文件

/**
 * @brief 主视图类 MainView，整合了整个应用的视图和数据模型
 */
class MainView : public QWidget {
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化所有子视图和连接信号
     * @param parent 父对象
     */
    explicit MainView(QWidget *parent = nullptr)
        : QWidget(parent) {
        // 初始化应用配置
        Initialization::initialize();

        // 创建 View 层实例，View 负责显示界面和处理视图逻辑
        view = new EntranceView(this);

        // 设置布局
        QVBoxLayout *mainLayout = new QVBoxLayout(this);
        mainLayout->addWidget(view);  // 添加 View 组件到主视图布局中

        setLayout(mainLayout);
    }

private:
    EntranceView *view;  // View 层组件，用于显示图表和界面元素
};

#endif // MAINVIEW_HPP
